A physical unclonable function (PUF) is a physical entity that gives a response to a stimulus (i.e., the challenge). A PUF has three key properties: the function must be easy to evaluate (i.e., measure) from a stimulus (i.e., challenge), the function must be difficult to predict (i.e., random from PUF to PUF, or unclonable), and the function must be stable (i.e., repeatable) on any one device.
PUFs are critical in security applications, and are used in a variety of semiconductor products. For example, PUFs can be delay circuits. SRAM circuits, a differential pair circuit, a butterfly circuit, or a non-volatile memory. A PUF delay circuit leverages the randomness of circuit performance. A PUF SRAM circuit can use a preferred power-up state of cells to introduce variation. A PUF differential pair circuit uses a natural variation of two semiconductor circuits to create a random value. A PUF butterfly circuit uses logic latches to introduce variation. A PUF non-volatile memory uses various methods with write/erase steps, which leave the cells in random states that can be read out from the array. Further, the PUF non-volatile memory leverages variable cell response to identical write/erase conditions.